// table映射等
/**
 * 根据指定行列和单元格值，进行数据格式化处理
 * @param {object} row - 包含数据行对象，其中含有各个列的值
 * @param {object} column - 包含列属性的对象，用来指定要处理的单元格
 * @param {any} cellValue - 单元格的原始值，这里未使用该参数
 * @returns {string|any} - 返回格式化后的单元格值，根据列属性的不同，可能返回固定位数的数字、本地化的货币字符串，或原始值
 */
export function shineAsk(row, column, cellValue) { // 方法
    const data = { // 数据格式
        num: { // 数字格式
            amount: 4, // 金额
            taxRate: 4, // 税率
            price: 4, // 单价
            mdseTax: 2, // 商品税额
            mdseTaxRate: 2// 商品税率
        },
        money: ['equipSum', 'taxAmount', 'doneAmt', 'donePrice', 'doneTaxAmount', 'amt', 'changePrice']// 货币格式
    }
    for (const i in data.num) { // 循环
        if (i === column['property']) { // 判断
            return Number(row[i]).toFixed(data.num[column['property']])// 返回
        }
    }
    data.money.forEach(item => { // 循环
        if (column['property'] === item) { // 判断
            return row[item] ? row[item].toLocaleString('zh') : row[item]// 返回
        }
    })
    return row[column['property']]// 返回
}

// 金额（四舍五入，保留两位小数）
export function shineAskMoney(row, column, cellValue) { // 方法
    const data = { // 数据格式
        num: { // 数字格式
            equipSum: 2, // 设备金额
            taxAmount: 2, // 税额
            amt: 2, // 金额
            price: 2, // 单价
            changePrice: 2, // 换价
            donePrice: 2, // 成交价
            doneTaxAmount: 2, // 成交税额
            doneAmt: 2, // 成交金额
            taxRate: 4, // 税率
            amount: 4// 商品税额
        }
    }
    for (const item in data.num) { // 循环
        if (column['property'] === item) { // 判断
            return Number(row[item]).toFixed(data.num[item] || 2).toLocaleString('zh')// 返回
        }
    }
    return row[column['property']]// 返回
}

/**
 * @title 对比数组对象
 * @value before 原数组
 * @value now 现数组
 * @return beforeArray
 */
export function contrastArray(before, now) { // 方法
    const arr = []// 数组
    if (before.length !== now.length) { // 判断
        return now// 返回
    }
    before.map((item, index) => { // 循环
        // eslint-disable-next-line no-unused-vars
        for (const i in item) { // 循环
            if (!item[i] === !now[index][i]) { // 判断
                // console.log('数据未发生改变')
            } else { // 判断
                console.log(now[index][i], before[index][i], i, item, '123')// 打印
                arr.push(now[index])// 添加
                return// 返回
            }
        }
    })
    return arr// 返回
}

// 保留四位小数
/**
 *
 * @param {*} value
 * @param {*} num
 * @returns
 */
export function fourNum(value, num = 10000) { // 方法
    return Math.floor(value * num) / num// 返回
}

// 最大长度
/**
 *
 * @param {*} value
 * @param {*} num
 * @returns
 */
export function maxLength(value, num = 14) { // 方法
    const a = `${value}`.slice(0, num)// 截取
    return a// 返回
}

// input校验
/**
 *
 * @param {*} value
 * @param {*} data
 * @returns
 */
export function inputValidation(value, data) { // 方法
    let pattern = ''// 正则
    switch (data.spuUnitAcc) { // 判断
        case '0':// 判断
            pattern = /^[0-9]\d*$/ // 正则
            break // 跳出
        case '1':// 判断
            pattern = /^[0-9]+(\.[0-9]{0,1})?$/ // 正则
            break // 跳出
        case '2':// 判断
            pattern = /^[0-9]+(\.[0-9]{0,2})?$/ // 正则
            break // 跳出
        case '3':// 判断
            pattern = /^[0-9]+(\.[0-9]{0,3})?$/ // 正则
            break // 跳出
        case '4':// 判断
            pattern = /^[0-9]+(\.[0-9]{0,3})?$/ // 正则
    }
    return `${value - 0}`.match(pattern) // 返回
}
